package com.stardata.liangshisq.tcslmon.service;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.stardata.liangshisq.tcslmon.entity.ProductVo;
import org.jetbrains.annotations.NotNull;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @author Samson Shu
 * @email shush@stardata.top
 * @date 2020/12/14 10:36
 */
@DS("canyin")
public interface PassonService {

  /**
   * 查询传菜界面成品熟食菜品列表
   * @return 返回的成品熟食菜品列表
   */
  List<ProductVo> queryCookedItems(@NotNull Long shopId);

  /**
   * 查询传菜界面制作中菜品列表
   * @return 返回的制作中菜品列表
   */
  List<ProductVo> queryMakingItems(@NotNull Long shopId);


  /**
   * 保存传菜操作
   * @param kcKscIds 保存传菜的后厨流水id列表
   */
  @Transactional(rollbackFor = {Exception.class})
  void savePassonByList(@NotNull Long operUserId, @NotNull List<Long> kcKscIds,
                        @NotNull Boolean passed);

  /**
   * 整单插队
   * @param bsId 插队订单的营业流水id
   */
  @Transactional(rollbackFor = {Exception.class})
  void jumpOrder(@NotNull Long bsId) ;

  /**
   * 单品插队
   * @param kcKscIds 待插队的厨房配传菜流水ID列表
   */
  @Transactional(rollbackFor = {Exception.class})
  void jumpItems(@NotNull List<Long> kcKscIds);

  /**
   * 查询已传菜的历史记录
   * @param shopId 店铺ID
   * @param keyword 查询关键词
   * @return 查询结果
   */
  List<ProductVo> queryPassed(@NotNull Long shopId, String keyword);

  /**
   * 查询当日的菜品信息
   * @param shopId
   * @param needException
   * @return
   */
    List<ProductVo> queryKscHistory(Long shopId, Boolean needException);
}
